<?php
/**
 * Copyright (c) 2006, PORTALIER Julien
 *
 * Licensed under The MIT License
 * Redistributions of files must retain the above copyright notice.
 *
 * @package    FeatherPHP
 * @subpackage Libs
 * @copyright  Copyright (c) 2006, Julien PORTALIER
 * @link       http://feather.portalier.com
 * @license    http://www.opensource.org/licenses/mit-license.php The MIT License
 */

function mkdirr($dir, $mode=0755)
{
	if (is_dir($dir) || @mkdir($dir, $mode))
		return true;
	if (!mkdirr(dirname($dir), $mode))
		return false;
	return @mkdir($dir, $mode);
}

function rmdirr($path, $remove_empty_dir=true)
{
	if (is_dir($path) and ($handle = opendir($path)))
	{
		while (false !== ($file = readdir($handle)))
		{
			if ($file == '.' or $file == '..')
				continue;
			if (is_dir($path.$file))
				rmdirr($path.$file, false);
			elseif (!unlink($path.$file))
				return false;
		}
		closedir($handle);
		
		if (!rmdir($path))
			return false;
	}
	elseif (file_exists($path) and !unlink($path))
		return false;
	
	if ($remove_empty_dir)
		rm_empty_dir(dirname($path).DS);
	
	return true;
}

function rm($fname, $rm_empty_dir=true)
{
	if (is_file($fname) and !unlink($fname))
		return false;
	if ($rm_empty_dir)
		rm_empty_dir(dirname($fname).DS);
	return true;
}

function rm_empty_dir($path)
{
	$files =& glob($path.'*');
	if (empty($files))
		if (!rmdir($path)) return false;
}
?>